import QtQuick
import QtQuick.Controls

Window {
    width: 640
    height: 480
    visible: true
    title: qsTr("StackView")

    // 定义 StackView
    StackView {
        id: stackView
        anchors.fill: parent
        initialItem: mainPage // 设置初始页面
    }

    // 主页面
    Component {
        id: mainPage
        Page {
            Column {
                anchors.centerIn: parent
                spacing: 20

                Button {
                    text: qsTr("跳转到页面1")
                    onClicked: {
                        // 推入 Page 1
                        //stackView.push(page1);
                        stackView.push(page1, {msg_of_page1: "改变page1的消息"})
                        stackView.k
                    }
                }

                Button {
                    text: qsTr("跳转到页面2")
                    onClicked: {
                        // 推入 Page 2
                        stackView.push(page2);
                    }
                }
            }
        }
    }

    // Page 1
    Component {
        id: page1
        Page {
            property string msg_of_page1: "这是页面1"
            Column {
                anchors.centerIn: parent
                spacing: 20
                Label {
                    text: msg_of_page1
                    font.pixelSize: 24
                }

                Button {
                    text: qsTr("返回到上一个页面")
                    onClicked: {
                        // 弹出当前页面，返回到上一个页面
                        stackView.pop();
                    }
                }
            }
        }
    }

    // Page 2
    Component {
        id: page2
        Page {
            Column {
                anchors.centerIn: parent
                spacing: 20

                Label {
                    text: qsTr("这是页面2")
                    font.pixelSize: 24
                }

                Button {
                    text: qsTr("返回到上一个页面")
                    onClicked: {
                        // 弹出当前页面，返回到上一个页面
                        stackView.pop();
                    }
                }

                Button {
                    text: qsTr("用页面3替换当前页面")
                    onClicked: {
                        // 用 Page 3 替换当前页面
                        stackView.replace(page3);
                    }
                }
            }
        }
    }

    // Page 3
    Component {
        id: page3
        Page {
            Column {
                anchors.centerIn: parent
                spacing: 20

                Label {
                    text: qsTr("这是页面3")
                    font.pixelSize: 24
                }

                Button {
                    text: qsTr("返回到初始页面")
                    onClicked: {
                        // 弹出所有页面，返回到初始页面
                        stackView.pop(null); // null 表示返回到初始页面
                    }
                }
            }
        }
    }
}
